package com.junmeng.retrace;

import proguard.retrace.ReTraceExt;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;

public class RetraceUtil {
    /**
     * 翻译混淆后的文件
     *
     * @param mappingFile    映射文件
     * @param stackTraceFile 待翻译的文件
     * @return 翻译结果，null表示翻译失败
     */
    public static String retrace(File mappingFile, File stackTraceFile) {
        try {
            String result = new ReTraceExt()
                    .retrace(mappingFile, stackTraceFile);
            return result;

        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return null;
    }

    /**
     * 翻译混淆后的文件
     *
     * @param mappingInputStream    映射文件
     * @param stackTraceInputStream 待翻译的文件
     * @return null表示翻译失败
     */
    public static String retrace(InputStream mappingInputStream, InputStream stackTraceInputStream) {
        try {
            String result = new ReTraceExt().retrace(mappingInputStream, stackTraceInputStream);
            return result;
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return null;
    }

    /**
     * 翻译混淆后的字符串
     *
     * @param mappingString    映射字符串
     * @param stackTraceString 待翻译的字符串
     * @return null表示翻译失败
     */
    public static String retrace(String mappingString, String stackTraceString) {
        String result = new ReTraceExt().retrace(mappingString, stackTraceString);
        return result;
    }

}